Aller au contenu principal

Comment créer et se connecter avec une clé SSH sur votre serveur Linux

Qu'est-ce qu'une clé SSH ?

Une clé SSH (Secure Shell) est une paire de clés cryptographiques utilisée pour sécuriser les connexions entre un client (votre machine locale) et un serveur distant. Elle remplace le mot de passe traditionnel pour l'authentification, offrant une méthode plus sécurisée pour se connecter à votre serveur.

Pourquoi utiliser une clé SSH ?

  • Sécurité accrue : Les clés SSH sont plus difficiles à intercepter ou à deviner qu'un mot de passe classique.
  • Authentification sans mot de passe : Une fois la clé SSH configurée, vous pouvez vous connecter sans entrer de mot de passe, simplifiant la gestion.
  • Protection contre les attaques par force brute : Contrairement aux mots de passe, qui peuvent être vulnérables aux attaques par dictionnaire ou force brute, les clés SSH offrent une sécurité bien plus robuste.

Pré-requis

  • Un serveur Linux (ex : Ubuntu, CentOS, Debian, etc.)
  • Un client SSH pour vous connecter à votre serveur (Putty, Termius, PowerShell, etc.)
  • Accès administrateur sur votre serveur (root ou un utilisateur avec des droits sudo)

Étapes pour créer et utiliser une clé SSH

1. Créer une clé SSH sur votre machine locale

Sur Linux / macOS

  1. Ouvrir un terminal.

  2. Générer une paire de clés SSH avec la commande suivante :

    ssh-keygen -t rsa -b 4096 -C "votre_email@exemple.com"
    • Le -t rsa spécifie le type de clé (RSA).
    • Le -b 4096 définit la taille de la clé (4096 bits, ce qui est très sécurisé).
    • Le -C "votre_email@exemple.com" est un commentaire pour identifier votre clé.
  3. Suivre les instructions : Vous serez invité à choisir où sauvegarder la clé. Par défaut, elle sera sauvegardée dans le répertoire ~/.ssh/id_rsa.

  4. Entrer une phrase de passe (optionnel) : Vous pouvez ajouter une phrase de passe pour sécuriser davantage la clé privée, mais cela n'est pas obligatoire.

Sur Windows (avec PowerShell ou PuTTY)

Avec PowerShell (Windows 10/11)
  1. Ouvrez PowerShell en mode administrateur.

  2. Générez une paire de clés SSH :

    ssh-keygen -t rsa -b 4096 -C "votre_email@exemple.com"
  3. Choisissez l'emplacement pour enregistrer la clé (généralement C:\Users\VotreNom\.ssh\id_rsa).

  4. Optionnel : Entrez une phrase de passe pour la clé, ou appuyez sur Entrée pour la laisser vide.

Avec PuTTYgen (si vous préférez utiliser PuTTY)
  1. Téléchargez PuTTYgen.
  2. Ouvrez PuTTYgen et cliquez sur Generate.
  3. Déplacez la souris dans la fenêtre pour générer une clé.
  4. Copiez la clé publique affichée.
  5. Sauvegardez la clé privée en cliquant sur Save private key.

2. Ajouter la clé publique sur votre serveur

  1. Se connecter à votre serveur via SSH (avec un mot de passe pour l'instant) :

    ssh user@89.213.144.X
  2. Créer un répertoire pour les clés SSH si ce n’est pas déjà fait :

    mkdir -p ~/.ssh
    chmod 700 ~/.ssh
  3. Ajouter la clé publique dans le fichier authorized_keys :

    • Ouvrez le fichier authorized_keys pour y ajouter la clé publique :

      nano ~/.ssh/authorized_keys
    • Collez la clé publique (copiée à partir de votre machine locale).

    • Sauvegardez et fermez le fichier (CTRL+X, puis Y et Entrée).

  4. Attribuer les bonnes permissions :

    chmod 600 ~/.ssh/authorized_keys

3. Désactiver l'authentification par mot de passe

Pour renforcer la sécurité de votre serveur, vous pouvez désactiver l'authentification par mot de passe pour forcer l’utilisation des clés SSH.

  1. Éditez le fichier de configuration SSH :

    sudo nano /etc/ssh/sshd_config
  2. Modifiez les lignes suivantes pour désactiver l'authentification par mot de passe et activer uniquement les clés SSH :

    PasswordAuthentication no
    ChallengeResponseAuthentication no
    UsePAM no
  3. Redémarrez le service SSH pour appliquer les changements :

    sudo systemctl restart sshd

4. Se connecter à votre serveur avec la clé SSH

Sur Linux / macOS

  1. Se connecter avec la clé SSH :

    ssh -i ~/.ssh/id_rsa user@89.213.144.X

    Si vous avez spécifié une autre location pour la clé privée, ajustez le chemin d'accès.

Sur Windows avec PowerShell

  1. Se connecter avec la clé SSH :

    ssh -i C:\Users\VotreNom\.ssh\id_rsa user@89.213.144.X

Sur Windows avec PuTTY

  1. Ouvrez PuTTY, entrez l'adresse IP de votre serveur (89.213.144.X) dans le champ "Host Name".
  2. Allez dans Connection > SSH > Auth et sélectionnez votre fichier de clé privée (la clé générée avec PuTTYgen).
  3. Cliquez sur Open pour vous connecter à votre serveur.

Sur macOS / Linux avec Termius

  1. Ouvrez Termius et créez une nouvelle connexion.
  2. Dans les paramètres de connexion, spécifiez l'adresse IP de votre serveur (89.213.144.X).
  3. Dans l'onglet Authentification, choisissez l'option Clé SSH et sélectionnez la clé privée.
  4. Connectez-vous.

5. Vérification

Une fois connecté, vous pouvez vérifier que vous avez bien utilisé la clé SSH pour l'authentification en examinant les logs :

sudo tail -f /var/log/auth.log

Vous devriez voir une ligne indiquant que l'authentification a été réalisée avec une clé SSH.

Conclusion

L'utilisation de clés SSH pour se connecter à votre serveur est une méthode plus sécurisée que l'authentification par mot de passe. En désactivant l'accès par mot de passe, vous protégez davantage votre serveur contre les attaques par force brute. N'oubliez pas d'utiliser un mot de passe robuste pour la phrase de passe de votre clé privée, et assurez-vous de garder vos clés privées en sécurité.

Clients SSH recommandés

Ces outils vous permettront de gérer facilement vos connexions SSH en toute sécurité.